'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  const auth = app.middleware.auth;
  // 登录验证
  router.get('/admin/users/captcha', controller.adminUser.captcha); //验证码
  router.post('/admin/users/login', controller.adminUser.login); //登录
  router.post('/admin/users/refresh-token', controller.adminUser.refreshToken); //刷新token
  router.post('/admin/register', controller.adminUser.register); //注册


  // 用户管理
  router.post('/admin/users', auth('/admin/users'), controller.adminUser.createUser);
  router.post('/admin/updateUser', auth('/admin/updateUser'), controller.adminUser.updateUser);
  router.post('/admin/changeStatusUser', auth('/admin/changeStatusUser'), controller.adminUser.changeStatus);
  router.post('/admin/deleteUsers', auth('/admin/deleteUsers'), controller.adminUser.deleteUsers);
  router.get('/admin/users/info', auth('/admin/users/info'),  controller.adminUser.userInfo); //获取用户信息
  router.post('/admin/userList',  controller.adminUser.userList);
  router.post('/admin/bindRole',auth('/admin/bindRole'), controller.adminUser.bindRoles) // 绑定角色
  router.post('/admin/userRoles',auth('/admin/userRoles'),controller.adminUser.userRoles) //根据用户id获取其下的角色
  router.post('/admin/updateAvatar',auth('/admin/bindRole'),controller.adminUser.updateAvatar) //修改头像
  router.post('/admin/updateUsername',auth('/admin/bindRole'),controller.adminUser.updateUsername) //修改用户名
  router.post('/admin/updatePsd',auth('/admin/updatePsd'),controller.adminUser.updatePsd) //修改密码
  router.post('/admin/updateOtherMsg',auth('/admin/updateOtherMsg'),controller.adminUser.updateOtherMsg) //修改其他信息

  // 菜单管理
  router.get('/admin/menus/tree', auth('/admin/menus/tree'), controller.adminMenu.menuTree); // 获取菜单树
  router.post('/admin/createMenu', auth('/admin/createMenu'), controller.adminMenu.createMenu); //创建菜单
  router.post('/admin/updateMenu', auth('/admin/updateMenu'), controller.adminMenu.updateMenu); //编辑菜单
  router.post('/admin/findMenu', auth('/admin/findMenu'), controller.adminMenu.readMenu); // 根据id查找菜单项
  router.post('/admin/deleteMenu', auth('/admin/deleteMenu'), controller.adminMenu.deleteMenu); //删除菜单
  router.post('/admin/changeStatusMenu', auth('/admin/changeStatusMenu'), controller.adminMenu.changeStatus); //菜单的启用/禁用
  router.post('/admin/menuList', auth('/admin/menuList'),   controller.adminMenu.menuList); //获取菜单（权限）列表

  // 角色管理
  router.post('/admin/rolelist', auth('/admin/rolelist'), controller.adminRole.roleList); //获取角色列表
  router.post('/admin/createRole', auth('/admin/createRole'), controller.adminRole.createRole); //创建角色
  router.post('/admin/updateRole', auth('/admin/updateRole'), controller.adminRole.updateRole); //编辑角色
  router.post('/admin/deleteRole', auth('/admin/deleteRole'), controller.adminRole.deleteRole); //删除角色
  router.post('/admin/bindMenu',auth('/admin/bindMenu'), controller.adminRole.bindMenus); // 为角色绑定菜单（配置权限）
  router.post('/admin/rolesMenus',auth('/admin/rolesMenus'), controller.adminRole.rolesMenus); // 根据id获取该角色的权限
  // router.get('/admin/roles/:id/members', auth('get@roles/:id/members'), controller.adminRole.memberList);
  // router.post('/admin/roles/:id/members', auth('post@roles/:id/members'), controller.adminRole.bindMember);

  // 文章管理
  router.post('/admin/articleList',auth('/admin/articleList'),  controller.article.articleList); //获取文章列表
  router.post('/admin/createArticle',auth('/admin/createArticle'),  controller.article.createArticle); //创建文章或草稿（客户端）
  router.post('/admin/auditArticle',auth('/admin/auditArticle'),  controller.article.auditArticle); //审核文章
  router.post('/admin/deleteArticle',auth('/admin/deleteArticle'),  controller.article.deleteArticle); //删除文章
  router.post('/admin/editArticle',auth('/admin/editArticle'),  controller.article.editArticle); //编辑草稿
  router.post('/admin/getArticleById',auth('/admin/getArticleById'),  controller.article.getArticleById); //根据id获取文章
  router.post('/admin/getReCommentArticle',auth('/admin/getReCommentArticle'),  controller.article.getReCommentArticle); //根据id获取推荐文章

  

  // 标签管理
  router.post('/admin/tagsList',auth('/admin/tagsList'),  controller.tags.tagsList); //获取标签列表
  router.post('/admin/createTags',auth('/admin/createTags'),  controller.tags.createTags); //创建标签
  router.post('/admin/updateTags',auth('/admin/updateTags'),  controller.tags.updateTags); //编辑标签
  router.post('/admin/deleteTags',auth('/admin/deleteTags'),  controller.tags.deleteTags); //删除标签

  // 话题管理
  router.post('/admin/topicList',auth('/admin/topicList'),  controller.topic.topicList); //获取话题列表
  router.post('/admin/createTopic',auth('/admin/createTopic'),  controller.topic.createTopic); //创建话题
  router.post('/admin/updateTopic',auth('/admin/updateTopic'),  controller.topic.updateTopic); //编辑话题
  router.post('/admin/deleteTopic',auth('/admin/deleteTopic'),  controller.topic.deleteTopic); //删除话题


  // 收藏
  router.post('/admin/collectListByUser',  controller.collect.collectListByUser); //根据用户获取收藏列表
  router.post('/admin/changeCollectStatus',  controller.collect.changeCollectStatus); //收藏状态

  // 点赞文章
  router.post('/admin/likeArticleListByUser',  controller.likeArticle.likeArticleListByUser); //根据用户获取点赞文章列表
  router.post('/admin/changeLikeArticleStatus',  controller.likeArticle.changeLikeArticleStatus); //文章点赞状态

  // 关注-粉丝
  router.post('/admin/subscribeByUser',  controller.subscribe.subscribeByUser); //根据用户id获取粉丝/关注
  router.post('/admin/changeSubscribeStatus',  controller.subscribe.changeSubscribeStatus); //关注，取消关注
  
  // 评论回复
  router.post('/admin/getCommentByArticle',  controller.comment.getCommentByArticle); // 根据文章获取评论
  router.post('/admin/getReplyByComment',  controller.comment.getReplyByComment); // 根据评论 id 获取回复列表
  router.post('/admin/createComment',  controller.comment.createComment); // 发表评论回复
  router.post('/admin/deleteComment',  controller.comment.deleteComment); // 删除评论

  // 消息通知
  router.post('/admin/getMsgByUser', auth('/admin/getMsgByUser'), controller.message.getMsgByUser); // 根据 用户id 获取消息列表 （公告+评论回复+审核消息）
  router.post('/admin/createMsg', auth('/admin/createMsg'), controller.message.createMsg); // 生成通知
  router.post('/admin/changeReadStatus', auth('/admin/changeReadStatus'), controller.message.changeReadStatus); // 修改是否已读状态 (用户)
  router.post('/admin/UserDeleteMsg',auth('/admin/UserDeleteMsg'),  controller.message.UserDeleteMsg); // 用户删除消息 控制isShow即可
  router.post('/admin/getNoticeMsg', auth('/admin/getNoticeMsg'), controller.message.getNoticeMsg); // 获取公告列表
  router.post('/admin/createNoticeMsg', auth('/admin/createNoticeMsg'), controller.message.createNoticeMsg); // 创建公告
  router.post('/admin/updateNoticeMsg',auth('/admin/updateNoticeMsg'),  controller.message.updateNoticeMsg); // 编辑公告
  router.post('/admin/consoleDelMsg',  auth('/admin/consoleDelMsg'),controller.message.consoleDelMsg); // 管理员删除公告


  // 分片上传
  router.get('/admin/file/chunk/presence', auth('/admin/file/chunk/presence'), controller.file.chunkPresence);
  router.post('/admin/file/chunk/merge', auth('/admin/file/chunk/merge'), controller.file.chunkMerge);
  router.post('/admin/file/chunk', auth('/admin/file/chunk'), controller.file.chunk);
  // 普通文件上传
  router.post('/admin/file', controller.file.upload);
};
